package ace.module.weixin.api;

import ace.cmp.core.model.R;
import ace.module.weixin.api.model.dto.WxsGetPhoneNumberResultDto;
import ace.module.weixin.api.model.dto.WxsJsCode2SessionResultDto;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;

/**
 * 微信服务-小程序 api.
 *
 * @author Caspar
 */
public interface WxsMiniAppApi {

  /**
   * 微信小程序登录code流程
   *
   * @param appId
   * @param loginCode
   * @return
   */
  R<WxsJsCode2SessionResultDto> getOpenIdByLoginCode(
      @Valid @NotEmpty String appId, @Valid @NotEmpty String loginCode);

  /**
   * 微信小程序获取手机号码流程
   *
   * @param appId
   * @param phoneNumberCode
   * @return
   */
  R<WxsGetPhoneNumberResultDto> getPhoneNumberByPhoneNumberCode(
      @Valid @NotEmpty String appId, @Valid @NotEmpty String phoneNumberCode);
}
